home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / gnu / recode.lha / recode-3.2.4 / recode.info (.txt) < prev    next >
GNU Info File  |  1992-08-23  |  45KB  |  885 lines

  1. This is Info file recode.info, produced by Makeinfo-1.47 from the input
  2. file recode.texi.
  3.    Copyright (C) 1990 Free Software Foundation, Inc. Francois Pinard
  4. <pinard@iro.umontreal.ca>, 1988.
  5.    This program is free software; you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation; either version 2, or (at your option) any
  8. later version.
  9.    This program is distributed in the hope that it will be useful, but
  10. WITHOUT ANY WARRANTY; without even the implied warranty of
  11. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12. General Public License for more details.
  13.    You should have received a copy of the GNU General Public License
  14. along with this program; if not, write to the Free Software Foundation,
  15. Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  16. File: recode.info,  Node: Top,  Next: Usage,  Prev: (dir),  Up: (dir)
  17. Conversion of files between different charsets and usages
  18. *********************************************************
  19.    This `recode' program has the purpose of converting files between
  20. various character sets and usages.  When exact transliterations are not
  21. possible, as it is often the case, the program may get rid of the
  22. offending characters or fall back on approximations.
  23.    Let us coin the term "charset" to represent, without distinction, a
  24. character set "per se" or a particular usage of a character set.  This
  25. program recognizes or produces a little more than a dozen of such
  26. charsets. Since it can convert each charset to almost any other one,
  27. more than one hundred different conversions are possible.
  28.    This tool pays special attention to superimposition of diacritics,
  29. particularily for French representation.  This orientation is mostly
  30. historical, it does not impair the usefulness, generality or
  31. extensibility of the program.  In fact, this program evolved for
  32. several years, through several programming languages and computer
  33. brands, because I used a lot of different coding for French characters
  34. on different machines, each system having its own peculiarities.
  35.    You may find in this document:
  36. * Menu:
  37. * Usage::               How to use this program
  38. * Charsets::            Character sets recognized of produced
  39. * Easy French::         Easy French conventions
  40. * Internals::           Internal aspects
  41. * Future::              Future things
  42.  -- The Detailed Node Listing --
  43. Character sets recognized of produced
  44. * applemac::            ASCII 8-bits for Apple's Macintosh
  45. * ascii::               ASCII 7-bits, BS to overstrike
  46. * bangbang::            ASCII "bang bang", escapes are ! and !!
  47. * cccascii::            ASCII 8-bits as seen by Perkin Elmer
  48. * cdcascii::            ASCII 8-bits a seen by Control Data
  49. * cdcnos::              ASCII 6/12 from NOS, escapes are ^ and @
  50. * ebcdic::              EBCDIC with no further comments
  51. * flat::                ASCII without diacritics nor underline
  52. * ibmpc::               ASCII 8-bits for IBM's PC
  53. * iconqnx::             ASCII as coded on Unisys' ICON
  54. * latex::               ASCII with LaTeX codes
  55. * latin1::              ASCII extended by Latin Alphabet 1
  56. * texte::               ASCII with easy French conventions
  57. ASCII 7-bits, BS to overstrike
  58. * Commented ASCII::
  59. * Octal ASCII::
  60. * Decimal ASCII::
  61. * Hexadecimal ASCII::
  62. ASCII "bang bang", escapes are ! and !!
  63. * Display Code::        Control Data's Display Code
  64. ASCII extended by Latin Alphabet 1
  65. * Commented Latin-1::
  66. * Octal Latin-1::
  67. * Decimal Latin-1::
  68. * Hexadecimal Latin-1::
  69. Easy French conventions
  70. * French quotes::       How to type them.
  71. * Latin ligatures::     They are not representable.
  72. * Diacritics::          How to type them, things to know.
  73. * Ending diaeresis::    List of words ending with diaeresis.
  74. * Easy French History::  When, How and Who.
  75. Internal aspects
  76. * Main flow::           Overall organization of the program.
  77. * Piping::              Distinction between internal or external piping.
  78. * Limitations::         A few limitations of the choosen implementation.
  79. * New charsets::        How to proceed in adding new charsets.
  80. File: recode.info,  Node: Usage,  Next: Charsets,  Prev: Top,  Up: Top
  81. How to use this program
  82. =======================
  83.    The general format of the program call is:
  84.      recode [OPTION]... [BEFORE]:[AFTER] [FILE]...
  85.    Each file FILE will be read assuming it is coded with charset
  86. BEFORE, it will be recoded over itself so to use the charset AFTER.  If
  87. there is no such FILE, the program rather acts as a filter and recode
  88. standard input to standard output.
  89.    The available options are:
  90.      Given this option, all other parameters and options are ignored. 
  91.      The program prints briefly the Copyright and copying conditions. 
  92.      See the file `COPYING' in the distribution for full statement of
  93.      the Copyright and copying conditions.
  94.      With Easy French conventions, use the column `:' instead of the
  95.      double-quote `"' for marking diaeresis. See: *Note Easy French::.
  96.      This option is recognized, but otherwise ignored.  Eventually, this
  97.      option will be necessary for a file to be replaced by its recoded
  98.      contents, if it is found that the recoding is not fully
  99.      reversible.  In this version, the replacement is unconditionnaly
  100.      done.
  101.      When the recoding requires a combination of two or more elementary
  102.      recoding steps, this option forces many passes over the data, using
  103.      intermediate files between passes.  This is the default behaviour
  104.      when files are recoded over themselves.  If this option is
  105.      selected in filter mode, that is, when the program reads standard
  106.      input and writes standard output, it might take longer for
  107.      programs further down the pipe chain to start receiving some
  108.      recoded data.
  109.      When the recoding requires a combination of two or more elementary
  110.      recoding steps, this option forces the creation of a chain of
  111.      program instances initiated through the `popen(3)' library call,
  112.      all operating in parallel.  In filter mode, at cost of some
  113.      overhead, recoded data will be available soon after the program
  114.      starts, even if many elementary recoding steps are required.
  115.      If, at installation time, the `popen(3)' call is said to be
  116.      unavailable, selecting option `-o' is equivalent to selecting
  117.      option `-i'.
  118.      When the recoding requires a combination of two or more elementary
  119.      recoding steps, this option forces the program to fork itself into
  120.      a few copies interconnected with pipes, using the `pipe(2)' system
  121.      call. All copies of the program operate in parallel.  This method
  122.      is similar to the method used through option `-o', but is slightly
  123.      more efficient.  This is the default behaviour in filter mode.  If
  124.      this option is used when files are recoded over themselves, this
  125.      should save some disk accesses and some disk space, at cost of
  126.      more system overhead.
  127.      If, at installation time, the `pipe(2)' call is said to be
  128.      unavailable, selecting option `-p' is equivalent to selecting
  129.      option `-o'.  If both `pipe(2)' and `popen(3)' are unavailable,
  130.      selecting option `-p' is equivalent to selecting option `-i'.
  131.      The *touch* option is meaningful only when files are recoded over
  132.      themselves.  Without it, the timestamps associated with files are
  133.      preserved, to reflect the fact that changing the code of a file
  134.      does not really alter its informational contents.  When the user
  135.      wants the recoded files to be timestamped at the recoding time;
  136.      this option inhibits the automatic protection of the timestamps.
  137.      Before proceeding, the program will print on `stderr' the list and
  138.      order of application of elementary conversions which are planned
  139.      to achieve the global conversion.  Then, the program will print on
  140.      `stderr' one message per FILE recoded, so to let the user informed
  141.      of the progress of its command.
  142.    One or both of the BEFORE or AFTER keywords may be omitted, but the
  143. colon which separates them cannot.  An omitted keyword implies the
  144. usual or default code in usage on the system where this program is
  145. installed.  Usually, this default code is `latin1' for UNIX systems or
  146. `ibmpc' for MS-DOS machines, but it might be changed to any other
  147. supported code when this program is installed.
  148. File: recode.info,  Node: Charsets,  Next: Easy French,  Prev: Usage,  Up: Top
  149. Character sets recognized of produced
  150. =====================================
  151.    The possible values for charset BEFORE or charset AFTER are provided
  152. as the keys in the following menu.
  153. * Menu:
  154. * applemac::            ASCII 8-bits for Apple's Macintosh
  155. * ascii::               ASCII 7-bits, BS to overstrike
  156. * bangbang::            ASCII "bang bang", escapes are ! and !!
  157. * cccascii::            ASCII 8-bits as seen by Perkin Elmer
  158. * cdcascii::            ASCII 8-bits a seen by Control Data
  159. * cdcnos::              ASCII 6/12 from NOS, escapes are ^ and @
  160. * ebcdic::              EBCDIC with no further comments
  161. * flat::                ASCII without diacritics nor underline
  162. * ibmpc::               ASCII 8-bits for IBM's PC
  163. * iconqnx::             ASCII as coded on Unisys' ICON
  164. * latex::               ASCII with LaTeX codes
  165. * latin1::              ASCII extended by Latin Alphabet 1
  166. * texte::               ASCII with easy French conventions
  167. File: recode.info,  Node: applemac,  Next: ascii,  Prev: Charsets,  Up: Charsets
  168. ASCII 8-bits for Apple's Macintosh
  169. ----------------------------------
  170.    The file has been obtained or is aimed to a Macintosh micro-computer
  171. from Apple.  This is an eight bit code.  The file is the data fork only.
  172. File: recode.info,  Node: ascii,  Next: bangbang,  Prev: applemac,  Up: Charsets
  173. ASCII 7-bits, BS to overstrike
  174. ------------------------------
  175.    The file is straight ASCII, seven bits only.  According to the
  176. definition of ASCII: diacritics are applied by a sequence of three
  177. characters: the letter, one BS, the diacritic mark.  We deviate
  178. slightly from this by exchanging the diacritic mark and the letter so,
  179. on a screen device, the diacritic will disappear and let the letter
  180. alone.  At recognition time, both methods are acceptable.
  181.    The French quotes are coded by the sequences: `< BS "' or `" BS <'
  182. for the opening quote and `> BS "' or `" BS >' for the closing quote. 
  183. This artifical convention was inherited in straight `ascii' from habits
  184. around `bangbang' entry, and is not well known.  But we decided to
  185. stick to it so that `ascii' charset will not loose French quotes.
  186. * Menu:
  187. * Commented ASCII::
  188. * Octal ASCII::
  189. * Decimal ASCII::
  190. * Hexadecimal ASCII::
  191. File: recode.info,  Node: Commented ASCII,  Next: Octal ASCII,  Prev: ascii,  Up: ascii
  192. Commented ASCII
  193. ...............
  194.      oct dec hex     name    description
  195.      
  196.      000   0  0      nul     null character
  197.      001   1  1      soh     start of header
  198.      002   2  2      stx     start of text
  199.      003   3  3      etx     end of text
  200.      004   4  4      eot     end of transmission
  201.      005   5  5      enq     enquiry
  202.      006   6  6      ack     acknowledge
  203.      007   7  7      bel     bell
  204.      010   8  8      bs      back space
  205.      011   9  9      ht      horizontal tab
  206.      012  10  a      nl      new line
  207.      013  11  b      vt      vertical tab
  208.      014  12  c      np      new page
  209.      015  13  d      cr      carriage return
  210.      016  14  e      so      shift out
  211.      017  15  f      si      shift in
  212.      020  16 10      dle     data link escape
  213.      021  17 11      dc1     device control 1
  214.      022  18 12      dc2     device control 2
  215.      023  19 13      dc3     device control 3
  216.      024  20 14      dc4     device control 4
  217.      025  21 15      nak     negative acknowledge
  218.      026  22 16      syn     synchronize
  219.      027  23 17      etb     end of transmitted block
  220.      030  24 18      can     cancel
  221.      031  25 19      em      end of medium
  222.      032  26 1a      sub     substitute
  223.      033  27 1b      esc     escape
  224.      034  28 1c      fs      file separator
  225.      035  29 1d      gs      group separator
  226.      036  30 1e      rs      record separator
  227.      037  31 1f      us      unit separator
  228.      040  32 20      sp      space
  229.      
  230.      177 127 7f      del     delete
  231. File: recode.info,  Node: Octal ASCII,  Next: Decimal ASCII,  Prev: Commented ASCII,  Up: ascii
  232. Octal ASCII
  233. ...........
  234.      000 nul  020 dle  040 sp 060 0  100 @  120 P  140 `  160 p
  235.      001 soh  021 dc1  041 !  061 1  101 A  121 Q  141 a  161 q
  236.      002 stx  022 dc2  042 "  062 2  102 B  122 R  142 b  162 r
  237.      003 etx  023 dc3  043 #  063 3  103 C  123 S  143 c  163 s
  238.      004 eot  024 dc4  044 $  064 4  104 D  124 T  144 d  164 t
  239.      005 enq  025 nak  045 %  065 5  105 E  125 U  145 e  165 u
  240.      006 ack  026 syn  046 &  066 6  106 F  126 V  146 f  166 v
  241.      007 bel  027 etb  047 '  067 7  107 G  127 W  147 g  167 w
  242.      010 bs   030 can  050 (  070 8  110 H  130 X  150 h  170 x
  243.      011 ht   031 em   051 )  071 9  111 I  131 Y  151 i  171 y
  244.      012 nl   032 sub  052 *  072 :  112 J  132 Z  152 j  172 z
  245.      013 vt   033 esc  053 +  073 ;  113 K  133 [  153 k  173 {
  246.      014 np   034 fs   054 ,  074 <  114 L  134 \  154 l  174 |
  247.      015 cr   035 gs   055 -  075 =  115 M  135 ]  155 m  175 }
  248.      016 so   036 rs   056 .  076 >  116 N  136 ^  156 n  176 ~
  249.      017 si   037 us   057 /  077 ?  117 O  137 _  157 o  177 del
  250. File: recode.info,  Node: Decimal ASCII,  Next: Hexadecimal ASCII,  Prev: Octal ASCII,  Up: ascii
  251. Decimal ASCII
  252. .............
  253.        0 nul  16 dle  32 sp 48 0  64 @  80 P   96 `  112 p
  254.        1 soh  17 dc1  33 !  49 1  65 A  81 Q   97 a  113 q
  255.        2 stx  18 dc2  34 "  50 2  66 B  82 R   98 b  114 r
  256.        3 etx  19 dc3  35 #  51 3  67 C  83 S   99 c  115 s
  257.        4 eot  20 dc4  36 $  52 4  68 D  84 T  100 d  116 t
  258.        5 enq  21 nak  37 %  53 5  69 E  85 U  101 e  117 u
  259.        6 ack  22 syn  38 &  54 6  70 F  86 V  102 f  118 v
  260.        7 bel  23 etb  39 '  55 7  71 G  87 W  103 g  119 w
  261.        8 bs   24 can  40 (  56 8  72 H  88 X  104 h  120 x
  262.        9 ht   25 em   41 )  57 9  73 I  89 Y  105 i  121 y
  263.       10 nl   26 sub  42 *  58 :  74 J  90 Z  106 j  122 z
  264.       11 vt   27 esc  43 +  59 ;  75 K  91 [  107 k  123 {
  265.       12 np   28 fs   44 ,  60 <  76 L  92 \  108 l  124 |
  266.       13 cr   29 gs   45 -  61 =  77 M  93 ]  109 m  125 }
  267.       14 so   30 rs   46 .  62 >  78 N  94 ^  110 n  126 ~
  268.       15 si   31 us   47 /  63 ?  79 O  95 _  111 o  127 del
  269. File: recode.info,  Node: Hexadecimal ASCII,  Prev: Decimal ASCII,  Up: ascii
  270. Hexadecimal ASCII
  271. .................
  272.       00 nul  10 dle  20 sp 30 0  40 @  50 P  60 `  70 p
  273.       01 soh  11 dc1  21 !  31 1  41 A  51 Q  61 a  71 q
  274.       02 stx  12 dc2  22 "  32 2  42 B  52 R  62 b  72 r
  275.       03 etx  13 dc3  23 #  33 3  43 C  53 S  63 c  73 s
  276.       04 eot  14 dc4  24 $  34 4  44 D  54 T  64 d  74 t
  277.       05 enq  15 nak  25 %  35 5  45 E  55 U  65 e  75 u
  278.       06 ack  16 syn  26 &  36 6  46 F  56 V  66 f  76 v
  279.       07 bel  17 etb  27 '  37 7  47 G  57 W  67 g  77 w
  280.       08 bs   18 can  28 (  38 8  48 H  58 X  68 h  78 x
  281.       09 ht   19 em   29 )  39 9  49 I  59 Y  69 i  79 y
  282.       0a nl   1a sub  2a *  3a :  4a J  5a Z  6a j  7a z
  283.       0b vt   1b esc  2b +  3b ;  4b K  5b [  6b k  7b {
  284.       0c np   1c fs   2c ,  3c <  4c L  5c \  6c l  7c |
  285.       0d cr   1d gs   2d -  3d =  4d M  5d ]  6d m  7d }
  286.       0e so   1e rs   2e .  3e >  4e N  5e ^  6e n  7e ~
  287.       0f si   1f us   2f /  3f ?  4f O  5f _  6f o  7f del
  288. File: recode.info,  Node: bangbang,  Next: cccascii,  Prev: ascii,  Up: Charsets
  289. ASCII "bang bang", escapes are ! and !!
  290. ---------------------------------------
  291.    This is the local code in use on Cybers at Universite de Montreal,
  292. which grave and serious people there prefer to name "ASCII code
  293. display". This code is also known as "Bang-bang".  It is based on a six
  294. bits character set in which capitals, French diacritics and a few
  295. others are coded using an `!' escape followed by a single character,
  296. and control characters using a double `!' escape followed by a single
  297. character.
  298.    The routines given here presume that the six bits code is already
  299. expressed in ASCII by the communication channel, with embedded ASCII `!'
  300. escapes.
  301.    Here is a table showing which characters are being used to encode
  302. each ASCII character.
  303.      000 !!@  020 !!P  040    060 0  100 @   120 !P  140 !@ 160 P
  304.      001 !!A  021 !!Q  041 !" 061 1  101 !A  121 !Q  141 A  161 Q
  305.      002 !!B  022 !!R  042 "  062 2  102 !B  122 !R  142 B  162 R
  306.      003 !!C  023 !!S  043 #  063 3  103 !C  123 !S  143 C  163 S
  307.      004 !!D  024 !!T  044 $  064 4  104 !D  124 !T  144 D  164 T
  308.      005 !!E  025 !!U  045 %  065 5  105 !E  125 !U  145 E  165 U
  309.      006 !!F  026 !!V  046 &  066 6  106 !F  126 !V  146 F  166 V
  310.      007 !!G  027 !!W  047 '  067 7  107 !G  127 !W  147 G  167 W
  311.      010 !!H  030 !!X  050 (  070 8  110 !H  130 !X  150 H  170 X
  312.      011 !!I  031 !!Y  051 )  071 9  111 !I  131 !Y  151 I  171 Y
  313.      012 !!J  032 !!Z  052 *  072 :  112 !J  132 !Z  152 J  172 Z
  314.      013 !!K  033 !![  053 +  073 ;  113 !K  133 [   153 K  173 ![
  315.      014 !!L  034 !!\  054 ,  074 <  114 !L  134 \   154 L  174 !\
  316.      015 !!M  035 !!]  055 -  075 =  115 !M  135 ]   155 M  175 !]
  317.      016 !!N  036 !!^  056 .  076 >  116 !N  136 ^   156 N  176 !^
  318.      017 !!O  037 !!_  057 /  077 ?  117 !O  137 _   157 O  177 !_
  319. * Menu:
  320. * Display Code::        Control Data's Display Code
  321. File: recode.info,  Node: Display Code,  Prev: bangbang,  Up: bangbang
  322. Control Data's Display Code
  323. ...........................
  324.      Octal display code to graphic       Octal display code to octal ASCII
  325.      
  326.      00  :    20  P    40  5   60  #     00 072  20 120  40 065  60 043
  327.      01  A    21  Q    41  6   61  [     01 101  21 121  41 066  61 133
  328.      02  B    22  R    42  7   62  ]     02 102  22 122  42 067  62 135
  329.      03  C    23  S    43  8   63  %     03 103  23 123  43 070  63 045
  330.      04  D    24  T    44  9   64  "     04 104  24 124  44 071  64 042
  331.      05  E    25  U    45  +   65  _     05 105  25 125  45 053  65 137
  332.      06  F    26  V    46  -   66  !     06 106  26 126  46 055  66 041
  333.      07  G    27  W    47  *   67  &     07 107  27 127  47 052  67 046
  334.      10  H    30  X    50  /   70  '     10 110  30 130  50 057  70 047
  335.      11  I    31  Y    51  (   71  ?     11 111  31 131  51 050  71 077
  336.      12  J    32  Z    52  )   72  <     12 112  32 132  52 051  72 074
  337.      13  K    33  0    53  $   73  >     13 113  33 060  53 044  73 076
  338.      14  L    34  1    54  =   74  @     14 114  34 061  54 075  74 100
  339.      15  M    35  2    55      75  \     15 115  35 062  55 040  75 134
  340.      16  N    36  3    56  ,   76  ^     16 116  36 063  56 054  76 136
  341.      17  O    37  4    57  .   77  ;     17 117  37 064  57 056  77 073
  342. File: recode.info,  Node: cccascii,  Next: cdcascii,  Prev: bangbang,  Up: Charsets
  343. ASCII 8-bits as seen by Perkin Elmer
  344. ------------------------------------
  345.    This charset represents the way Concurrent Computer Corporation
  346. (formerly Perkin Elmer) expresses EBCDIC using ASCII.
  347. File: recode.info,  Node: cdcascii,  Next: cdcnos,  Prev: cccascii,  Up: Charsets
  348. ASCII 8-bits a seen by Control Data
  349. -----------------------------------
  350.    This charset represents the way Control Data Corporation relates
  351. EBCDIC to ASCII.  We also select the lower half of this table to do
  352. straigth ASCII to EBCDIC conversions, back and forth.
  353. File: recode.info,  Node: cdcnos,  Next: ebcdic,  Prev: cdcascii,  Up: Charsets
  354. ASCII 6/12 from NOS, escapes are ^ and @
  355. ----------------------------------------
  356.    This is one of the charset in use on CDC Cyber NOS systems to
  357. represent ASCII, sometimes named "NOS 6/12" code for coding ASCII. 
  358. This code is also known as "caret ASCII".  It is based on a six bits
  359. character set in which small letters and control characters are coded
  360. using a `^' escape and, sometimes, a `@' escape.
  361.    The routines given here presume that the six bits code is already
  362. expressed in ASCII by the communication channel, with embedded ASCII
  363. `^' and `@' escapes.
  364.    Here is a table showing which characters are being used to encode
  365. each ASCII character.
  366.      000  ^5  020  ^#  040     060  0  100 @A  120  P  140  @G  160  ^P
  367.      001  ^6  021  ^[  041  !  061  1  101  A  121  Q  141  ^A  161  ^Q
  368.      002  ^7  022  ^]  042  "  062  2  102  B  122  R  142  ^B  162  ^R
  369.      003  ^8  023  ^%  043  #  063  3  103  C  123  S  143  ^C  163  ^S
  370.      004  ^9  024  ^"  044  $  064  4  104  D  124  T  144  ^D  164  ^T
  371.      005  ^+  025  ^_  045  %  065  5  105  E  125  U  145  ^E  165  ^U
  372.      006  ^-  026  ^!  046  &  066  6  106  F  126  V  146  ^F  166  ^V
  373.      007  ^*  027  ^&  047  '  067  7  107  G  127  W  147  ^G  167  ^W
  374.      010  ^/  030  ^'  050  (  070  8  110  H  130  X  150  ^H  170  ^X
  375.      011  ^(  031  ^?  051  )  071  9  111  I  131  Y  151  ^I  171  ^Y
  376.      012  ^)  032  ^<  052  *  072 @D  112  J  132  Z  152  ^J  172  ^Z
  377.      013  ^$  033  ^>  053  +  073  ;  113  K  133  [  153  ^K  173  ^0
  378.      014  ^=  034  ^@  054  ,  074  <  114  L  134  \  154  ^L  174  ^1
  379.      015  ^   035  ^\  055  -  075  =  115  M  135  ]  155  ^M  175  ^2
  380.      016  ^,  036  ^^  056  .  076  >  116  N  136 @B  156  ^N  176  ^3
  381.      017  ^.  037  ^;  057  /  077  ?  117  O  137  _  157  ^O  177  ^4
  382. File: recode.info,  Node: ebcdic,  Next: flat,  Prev: cdcnos,  Up: Charsets
  383. EBCDIC with no further comments
  384. -------------------------------
  385.    This charset is the IBM's external binary coded decimal for
  386. interchange coding.  This is an eight bits code.
  387. File: recode.info,  Node: flat,  Next: ibmpc,  Prev: ebcdic,  Up: Charsets
  388. ASCII without diacritics nor underline
  389. --------------------------------------
  390.    This code is ASCII expunged of all diacritics and underlines, as
  391. long as they are applied using three character sequences, with BS in the
  392. middle.  Also, despite slightly unrelated, each control character is
  393. represented by a sequence of two or three graphic characters.  The
  394. newline character, however, keeps its functionnality and is not
  395. represented.
  396.    Note that charset `flat' is a terminal charset.  We can convert *to*
  397. `flat', but not *from* it.
  398. File: recode.info,  Node: ibmpc,  Next: iconqnx,  Prev: flat,  Up: Charsets
  399. ASCII 8-bits for IBM's PC
  400. -------------------------
  401.    The file was obtained or is aimed towards a PC microcomputer from
  402. IBM or any compatible.  This is an eight-bit code.
  403. File: recode.info,  Node: iconqnx,  Next: latex,  Prev: ibmpc,  Up: Charsets
  404. ASCII for the Unisys' ICON
  405. --------------------------
  406.    The file is using Unisys' ICON way to represent diacritics with 0x19
  407. escape sequences.  This is a seven-bit code, even if eight-bit codes
  408. can flow through as part of IBM-PC charset.
  409. File: recode.info,  Node: latex,  Next: latin1,  Prev: iconqnx,  Up: Charsets
  410. ASCII with LaTeX codes
  411. ----------------------
  412.    This charset is an ASCII file coded to be read by LaTeX or, in
  413. certain cases, by TeX.
  414. File: recode.info,  Node: latin1,  Next: texte,  Prev: latex,  Up: Charsets
  415. ASCII extended by Latin Alphabet 1
  416. ----------------------------------
  417.    This charset corresponds to the ISO Latin Alphabet 1.  It is an
  418. eight-bit code which coincides with ASCII for the lower half.
  419. * Menu:
  420. * Commented Latin-1::
  421. * Octal Latin-1::
  422. * Decimal Latin-1::
  423. * Hexadecimal Latin-1::
  424. File: recode.info,  Node: Commented Latin-1,  Next: Octal Latin-1,  Prev: latin1,  Up: latin1
  425. Commented Latin-1
  426. .................
  427.      oct dec hex     description
  428.      
  429.      240 160 a0      no-break space
  430.      241 161 a1      inverted exclamation mark
  431.      242 162 a2      cent sign
  432.      243 163 a3      pound sign
  433.      244 164 a4      currency sign
  434.      245 165 a5      yen sign
  435.      246 166 a6      broken bar
  436.      247 167 a7      paragraph sign, section sign
  437.      250 168 a8      diaeresis
  438.      251 169 a9      copyright sign
  439.      252 170 aa      feminine ordinal indicator
  440.      253 171 ab      left angle quotation mark
  441.      254 172 ac      not sign
  442.      255 173 ad      soft hyphen
  443.      256 174 ae      registered trade mark sign
  444.      257 175 af      macron
  445.      260 176 b0      degree sign
  446.      261 177 b1      plus-minus sign
  447.      262 178 b2      superscript two
  448.      263 179 b3      superscript three
  449.      264 180 b4      acute accent
  450.      265 181 b5      small greek mu, micro sign
  451.      266 182 b6      pilcrow sign
  452.      267 183 b7      middle dot
  453.      270 184 b8      cedilla
  454.      271 185 b9      superscript one
  455.      272 186 ba      masculine ordinal indicator
  456.      273 187 bb      right angle quotation mark
  457.      274 188 bc      vulgar fraction one quarter
  458.      275 189 bd      vulgar fraction one half
  459.      276 190 be      vulgar fraction three quarters
  460.      277 191 bf      inverted question mark
  461.      300 192 c0      capital A with grave accent
  462.      301 193 c1      capital A with acute accent
  463.      302 194 c2      capital A with circumflex accent
  464.      303 195 c3      capital A with tilde
  465.      304 196 c4      capital A diaeresis
  466.      305 197 c5      capital A with ring above
  467.      306 198 c6      capital diphthong A with E
  468.      307 199 c7      capital C with cedilla
  469.      310 200 c8      capital E with grave accent
  470.      311 201 c9      capital E with acute accent
  471.      312 202 ca      capital E with circumflex accent
  472.      313 203 cb      capital E with diaeresis
  473.      314 204 cc      capital I with grave accent
  474.      315 205 cd      capital I with acute accent
  475.      316 206 ce      capital I with circumflex accent
  476.      317 207 cf      capital I with diaeresis
  477.      320 208 d0      capital icelandic ETH
  478.      321 209 d1      capital N with tilde
  479.      322 210 d2      capital O with grave accent
  480.      323 211 d3      capital O with acute accent
  481.      324 212 d4      capital O with circumflex accent
  482.      325 213 d5      capital O with tilde
  483.      326 214 d6      capital O with diaeresis
  484.      327 215 d7      multiplication sign
  485.      330 216 d8      capital O with oblique stroke
  486.      331 217 d9      capital U with grave accent
  487.      332 218 da      capital U with acute accent
  488.      333 219 db      capital U with circumflex accent
  489.      334 220 dc      capital U with diaeresis
  490.      335 221 dd      capital Y with acute accent
  491.      336 222 de      capital icelandic THORN
  492.      337 223 df      small german sharp s
  493.      340 224 e0      small a with grave accent
  494.      341 225 e1      small a with acute accent
  495.      342 226 e2      small a with circumflex accent
  496.      343 227 e3      small a with tilde
  497.      344 228 e4      small a with diaeresis
  498.      345 229 e5      small a with ring above
  499.      346 230 e6      small diphthong a with e
  500.      347 231 e7      small c with cedilla
  501.      350 232 e8      small e with grave accent
  502.      351 233 e9      small e with acute accent
  503.      352 234 ea      small e with circumflex accent
  504.      353 235 eb      small e with diaeresis
  505.      354 236 ec      small i with grave accent
  506.      355 237 ed      small i with acute accent
  507.      356 238 ee      small i with circumflex accent
  508.      357 239 ef      small i with diaeresis
  509.      360 240 f0      small icelandic eth
  510.      361 241 f1      small n with tilde
  511.      362 242 f2      small o with grave accent
  512.      363 243 f3      small o with acute accent
  513.      364 244 f4      small o with circumflex accent
  514.      365 245 f5      small o with tilde
  515.      366 246 f6      small o with diaeresis
  516.      367 247 f7      division sign
  517.      370 248 f8      small o with oblique stroke
  518.      371 249 f9      small u with grave accent
  519.      372 250 fa      small u with acute accent
  520.      373 251 fb      small u with circumflex accent
  521.      374 252 fc      small u with diaeresis
  522.      375 253 fd      small y with acute accent
  523.      376 254 fe      small icelandic thorn
  524.      377 255 ff      small y with diaeresis
  525. File: recode.info,  Node: Octal Latin-1,  Next: Decimal Latin-1,  Prev: Commented Latin-1,  Up: latin1
  526. Octal Latin-1
  527. .............
  528.      200    220    240 nsp 260 ++  300 A`  320 DD  340 a`  360 dd
  529.      201    221    241 !!  261 +-  301 A'  321 N~  341 a'  361 n~
  530.      202    222    242 c|  262 22  302 A^  322 O`  342 a^  362 o`
  531.      203    223    243 ##  263 33  303 A~  323 O'  343 a~  363 o'
  532.      204    224    244 cur 264 ''  304 A"  324 O^  344 a"  364 o^
  533.      205    225    245 y-  265 uu  305 A+  325 O~  345 a+  365 o~
  534.      206    226    246 ||  266 pil 306 AE  326 O"  346 ae  366 o"
  535.      207    227    247 $$  267 ..  307 C,  327 xx  347 c,  367 //
  536.      210    230    250 ""  270 ,,  310 E`  330 O/  350 e`  370 o/
  537.      211    231    251 cO  271 11  311 E'  331 U`  351 e'  371 u`
  538.      212    232    252 a-  272 o-  312 E^  332 U'  352 e^  372 u'
  539.      213    233    253 <<  273 >>  313 E"  333 U^  353 e"  373 u^
  540.      214    234    254 -.  274 14  314 I`  334 U"  354 i`  374 u"
  541.      215    235    255 --  275 12  315 I'  335 Y'  355 i'  375 y'
  542.      216    236    256 tO  276 34  316 I^  336 PP  356 i^  376 pp
  543.      217    237    257 mac 277 ??  317 I"  337 ss  357 i"  377 y"
  544. File: recode.info,  Node: Decimal Latin-1,  Next: Hexadecimal Latin-1,  Prev: Octal Latin-1,  Up: latin1
  545. Decimal Latin-1
  546. ...............
  547.      128    144    160 nsp 176 ++  192 A`  208 DD  224 a`  240 dd
  548.      129    145    161 !!  177 +-  193 A'  209 N~  225 a'  241 n~
  549.      130    146    162 c|  178 22  194 A^  210 O`  226 a^  242 o`
  550.      131    147    163 ##  179 33  195 A~  211 O'  227 a~  243 o'
  551.      132    148    164 cur 180 ''  196 A"  212 O^  228 a"  244 o^
  552.      133    149    165 y-  181 uu  197 A+  213 O~  229 a+  245 o~
  553.      134    150    166 ||  182 pil 198 AE  214 O"  230 ae  246 o"
  554.      135    151    167 $$  183 ..  199 C,  215 xx  231 c,  247 //
  555.      136    152    168 ""  184 ,,  200 E`  216 O/  232 e`  248 o/
  556.      137    153    169 cO  185 11  201 E'  217 U`  233 e'  249 u`
  557.      138    154    170 a-  186 o-  202 E^  218 U'  234 e^  250 u'
  558.      139    155    171 <<  187 >>  203 E"  219 U^  235 e"  251 u^
  559.      140    156    172 -.  188 14  204 I`  220 U"  236 i`  252 u"
  560.      141    157    173 --  189 12  205 I'  221 Y'  237 i'  253 y'
  561.      142    158    174 tO  190 34  206 I^  222 PP  238 i^  254 pp
  562.      143    159    175 mac 191 ??  207 I"  223 ss  239 i"  255 y"
  563. File: recode.info,  Node: Hexadecimal Latin-1,  Prev: Decimal Latin-1,  Up: latin1
  564. Hexadecimal Latin-1
  565. ...................
  566.       80    90    a0 nsp  b0 ++  c0 A`  d0 DD  e0 a`  f0 dd
  567.       81    91    a1 !!   b1 +-  c1 A'  d1 N~  e1 a'  f1 n~
  568.       82    92    a2 c|   b2 22  c2 A^  d2 O`  e2 a^  f2 o`
  569.       83    93    a3 ##   b3 33  c3 A~  d3 O'  e3 a~  f3 o'
  570.       84    94    a4 cur  b4 ''  c4 A"  d4 O^  e4 a"  f4 o^
  571.       85    95    a5 y-   b5 uu  c5 A+  d5 O~  e5 a+  f5 o~
  572.       86    96    a6 ||   b6 pil c6 AE  d6 O"  e6 ae  f6 o"
  573.       87    97    a7 $$   b7 ..  c7 C,  d7 xx  e7 c,  f7 //
  574.       88    98    a8 ""   b8 ,,  c8 E`  d8 O/  e8 e`  f8 o/
  575.       89    99    a9 cO   b9 11  c9 E'  d9 U`  e9 e'  f9 u`
  576.       8a    9a    aa a-   ba o-  ca E^  da U'  ea e^  fa u'
  577.       8b    9b    ab <<   bb >>  cb E"  db U^  eb e"  fb u^
  578.       8c    9c    ac -.   bc 14  cc I`  dc U"  ec i`  fc u"
  579.       8d    9d    ad --   bd 12  cd I'  dd Y'  ed i'  fd y'
  580.       8e    9e    ae tO   be 34  ce I^  de PP  ee i^  fe pp
  581.       8f    9f    af mac  bf ??  cf I"  df ss  ef i"  ff y"
  582. File: recode.info,  Node: texte,  Prev: latin1,  Up: Charsets
  583. ASCII with easy French conventions
  584. ----------------------------------
  585.    This charset is identical to `ascii', save for French diacritics
  586. which are noted using a slightly different convention.
  587.    See *Note Easy French:: for more details.
  588. File: recode.info,  Node: Easy French,  Next: Internals,  Prev: Charsets,  Up: Top
  589. Easy French conventions
  590. =======================
  591.    These conventions are used in `texte' and `latexte' charsets, which
  592. are seven bits codes.  At text entry time, these conventions provide a
  593. little speed up.  At read time, they slightly improve the readability. 
  594. Of course, it would better to have a specialized keyboard to make
  595. direct eight bits entries and fonts for immediately displaying eight
  596. bit ISO Latin-1 characters.  But not everybody is so fortunate. In
  597. several mailing environment, the eight bit is often willfully destroyed
  598. (an horrible Crime that most people do not care to straighten up).
  599.    See:
  600. * Menu:
  601. * French quotes::       How to type them.
  602. * Latin ligatures::     They are not representable.
  603. * Diacritics::          How to type them, things to know.
  604. * Ending diaeresis::    List of words ending with diaeresis.
  605. * Easy French History::  When, How and Who.
  606. File: recode.info,  Node: French quotes,  Next: Latin ligatures,  Prev: Easy French,  Up: Easy French
  607. French quotes
  608. -------------
  609.    French quotes (sometimes called "angle quotes") are noted the same
  610. way English quotes are noted in TeX, *id est* by ```' and `'''.
  611. File: recode.info,  Node: Latin ligatures,  Next: Diacritics,  Prev: French quotes,  Up: Easy French
  612. Latin ligatures
  613. ---------------
  614.    No effort has been put to preserve Latin ligatures (`ae', `oe')
  615. which are representable in several other charsets.  So, these ligatures
  616. may be lost through Easy French conventions.
  617. File: recode.info,  Node: Diacritics,  Next: Ending diaeresis,  Prev: Latin ligatures,  Up: Easy French
  618. Diacritics
  619. ----------
  620.    This is almost the French convention for simplified diacritics entry:
  621.      Acute accent
  622.      Grave accent
  623.      Circumflex accent
  624.      Diaeresis
  625.      Cedilla
  626.    In some countries, `:' is used instead of `"' to mark diaeresis.
  627. `recode' support one convention on a single call, depending on the `-c'
  628. option of the `recode' command.
  629.    The convention is prone to loosing information, because the diacritic
  630. meaning overloads some characters that already have other uses.  To
  631. alleviate this, some knowledge of the French language is insufflated
  632. into the recognition routines.  So, the following subtleties are
  633. systematically obeyed by the various recognizers.
  634.    * A single quote which follows a `e' does not necessarily means an
  635.      acute accent if it is followed by a single other one.  For example:
  636.     `e''
  637.           will give an `e' with an acute accent.
  638.     `e'''
  639.           will give a simple `e', with a closing quotation mark.
  640.     `e''''
  641.           will give an `e' with an acute accent, followed by a closing
  642.           quotation mark.
  643.      There is a problem induced by this convention if there are English
  644.      citations with a French text.  In sentences like:
  645.           There's a meeting at Archie's restaurant.
  646.      the single quotes will be mistaken twice for acute accents.  So
  647.      English contractions and suffix possessives could be mangled.
  648.    * A double quote or colon, depending on `-c' option, which follows a
  649.      vowel is interpreted as diaeresis only if it is followd by another
  650.      letter. But there are in French several words that *end* with a
  651.      diaeresis, the program also recognizes them.
  652.      See *Note Ending diaeresis:: for a study of all the problematic
  653.      cases.
  654.    * A comma which follows a `c' is interpreted as a cedilla only if it
  655.      is followd by one of the vowels `a', `o' and `u'.
  656. File: recode.info,  Node: Ending diaeresis,  Next: Easy French History,  Prev: Diacritics,  Up: Easy French
  657. List of words ending with diaeresis
  658. -----------------------------------
  659.    Here is a classification of all cases of a diaeresis at the end of a
  660. French word:
  661.    * Words ending in "igue"
  662.         - Feminine words without a relative masculine:
  663.                besaigue" cigue"
  664.         - Feminine words with a relative masculine: (1)
  665.                aigue" ambigue" contigue" exigue" subaigue" suraigue"
  666.    * Words not ending in "igue"
  667.         - Ended by "i": (2)
  668.                ai" congai" goi" hai"kai" inoui" sai" samurai" thai" tokai"
  669.         - Ended by "e":
  670.                canoe"
  671.         - Ended by "u": (3)
  672.                Esau"
  673.    Notes:
  674.   1. There are supposed to be seven words in this case.  So, one is
  675.      missing.
  676.   2. Look at the following sentence:
  677.           "Ai"e!  Voici le proble`me que j'ai"
  678.      or, using the `-c' option:
  679.           Ai:e!  Voici le proble`me que j'ai:
  680.      There is an ambiguity between an *ai"*, the small animal, and the
  681.      indicative future of *avoir* (first person singular), when
  682.      followed by what could be a diaeresis mark.  Hopefully, the case
  683.      is solved by the fact that an apostrophe always precedes the verb
  684.      and almost never the animal.
  685.   3. I did not pay attention to proper nouns, but this one showed up as
  686.      being fairly evident.
  687.    Just to complete this topic, note that it would be wrong to make a
  688. rule for all words ending in "igue" as needing a diaerisis.  Here are
  689. counter-examples:
  690.      becfigue be`sigue bigue bordigue bourdigue brigue contre-digue
  691.      digue d'intrigue fatigue figue garrigue gigue igue intrigue
  692.      ligue prodigue sarigue zigue
  693. File: recode.info,  Node: Easy French History,  Prev: Ending diaeresis,  Up: Easy French
  694. When, How and Who.
  695. ------------------
  696.    Easy French has been in use in France for a while.  Loic Dachary
  697. <loic@design.axis.fr> first exposed me to this particular convention. I
  698. only slightly adapted it (the diaeresis option) to make it more
  699. comfortable to several usages in Que'bec originating from Universite' de
  700. Montre'al.
  701.    In fact, the main problem for me was not to necessarily to invent
  702. Easy French, but to recognize the "best" convention to use, (best is not
  703. being defined, here) and to try to solve the main pithfalls associated
  704. with the selected convention.  I'm particularily grateful to Claude
  705. Goutier <6@cc.umontreal.ca> whom, through numerous discussions in
  706. August 1988, was quite helpful in evaluating various hypothesis.
  707. File: recode.info,  Node: Internals,  Next: Future,  Prev: Easy French,  Up: Top
  708. Internal aspects
  709. ================
  710.    This information is organized in:
  711. * Menu:
  712. * Main flow::           Overall organization of the program.
  713. * Piping::              Distinction between internal or external piping.
  714. * Limitations::         A few limitations of the choosen implementation.
  715. * New charsets::        How to proceed in adding new charsets.
  716. File: recode.info,  Node: Main flow,  Next: Piping,  Prev: Internals,  Up: Internals
  717. Overall organization
  718. --------------------
  719.    The main driver has a table giving the conversion routines available
  720. and for each, the starting charset and the ending charset.  It then
  721. tries to figure out the shortest sequence of conversions that will
  722. transform the input charset into the final charset.  Let us consider
  723. these charsets as being the nodes of a directed graph.  `recode' has
  724. internally a few elementary recoding methods, called "single-step"s,
  725. each of which may be considered as oriented arc from one node to the
  726. other.  A cost is attributed to each single-step.  Given a starting
  727. code and a goal code, `recode' computes the most economical route
  728. through the elementary recodings.
  729.    The main part of `recode' is written in C, as are most single-steps.
  730.  A few single-steps which need to recognize sequences of multiple
  731. characters are written in `lex'.
  732. File: recode.info,  Node: Piping,  Next: Limitations,  Prev: Main flow,  Up: Internals
  733. Internal vs external piping
  734. ---------------------------
  735.    Suppose that four elementary steps are selected at path optimization
  736. time.  Then `recode' will split itself into four different tasks
  737. interconnected with pipes, logically equivalent to:
  738.      step1 <input | step2 | step3 | step4 >output
  739. File: recode.info,  Node: Limitations,  Next: New charsets,  Prev: Piping,  Up: Internals
  740. Some limitations
  741. ----------------
  742.    Here are some limitations of the program.
  743.    * There is a limit (currently 10) on the number of steps allowed in
  744.      one single recodification work.  It should stay sufficient for
  745.      quite a while, maybe for ever.  This is a simple compilation
  746.      `#define', in any case.
  747. File: recode.info,  Node: New charsets,  Prev: Limitations,  Up: Internals
  748. Adding new charsets
  749. -------------------
  750.    It is fairly easy for a programmer to add a new charset to `recode'.
  751. All it requires is making two routines, modifying a few tables, and
  752. `make'ing `recode' again.
  753.    One of the routine should convert from any previous charset to the
  754. new one.  Any previous charset will do, but try to select it so you
  755. will not loose too much information while converting.  If you have to
  756. read multiple bytes of the old charset before recognizing the character
  757. to produce, you might write this routine in `lex'; otherwize, use C.
  758. Prototype your routine after one of those which exists, so to keep the
  759. sources uniform.
  760.    The other routine should convert from the new charset to any older
  761. one. You do not have to select the same old charset than what you
  762. selected for the previous routine.  Select any charset for which you
  763. will not loose too much information while converting.  If the routine
  764. has to read multiple bytes of the new charset before deciding which
  765. character it will produce, you might write this routine in `lex';
  766. otherwize, use C.  Prototype your routine after one of those which
  767. exists, so to keep the sources uniform.
  768.    Edit `Makefile' to add the object name of your two routines to the
  769. `C_STEPS' or `L_STEPS' macro definition, depending on the fact your
  770. routines is written in C or in `lex'.  Then edit `steps.h' in the four
  771. following places:
  772.   1. Create a symbol for your new charset in `enum TYPE_code'
  773.      definition.
  774.   2. Add the option name of your new charset in `code_keywords'
  775.      initialization.
  776.   3. Add two `extern' declarations for your routines at the appropriate
  777.      places.
  778.   4. Add two lines in `single_steps' array initialization to declare
  779.      your routines.  For each line, include the four following fields:
  780.        1. The function name of your routine.
  781.        2. The starting code `enum' constant, that is, the code your
  782.           routine *reads*.
  783.        3. The goal code `enum' constant, that is, the code your routine
  784.           *produces*.
  785.        4. The cost of your routine, using the predefined constants
  786.           `STEP', `LOOSE', `EXACT', `SLOW' and `FAST'.  See the comments
  787.           for the exact meaning of each of these and follow the
  788.           examples.  Respect these meanings and be honest with the
  789.           costs!
  790.      In some circumstances, one of your routines would be a mere copy. 
  791.      It is better in this case to not provide the routine, but still
  792.      declare it in `single_steps' using `NULL' as its function name and
  793.      `ALREADY' *alone* as its cost.
  794. File: recode.info,  Node: Future,  Prev: Internals,  Up: Top
  795. Future things
  796. =============
  797.    I will be glad to hear critics and suggestions, even for details. 
  798. This program is made up of hundreds of details, in fact.  Write to
  799. `pinard@iro.umontreal.ca'.
  800.    Some notes and suggestions.
  801.    * Accept abbreviations for charsets on the command call.  Accept more
  802.      than one conversion with intermediate filters in a single call.
  803.    * Support Universite de Montreal "accent" convention.
  804.    * Support `[nt]roff' diacritics.
  805.    * Support the Atari-ST internal code.
  806.    * Segregate charsets and usages.
  807.    * Is there some way of specifying that recode should not contract
  808.      something that looks like an accent?  Like "There\'s a meeting at
  809.      Archie\'s restaurant"?  (With corresponding insertion of
  810.      backslashes or whatevers when converting the other way, of course
  811.      - the transformation from accented to ascii should be exactly
  812.      invertable in all cases.) Of course, There\'s will not be
  813.      contracted.
  814. Tag Table:
  815. Node: Top
  816. Node: Usage
  817. Node: Charsets
  818. Node: applemac
  819. Node: ascii
  820. Node: Commented ASCII
  821. 10698
  822. Node: Octal ASCII
  823. 12314
  824. Node: Decimal ASCII
  825. 13465
  826. Node: Hexadecimal ASCII
  827. 14542
  828. Node: bangbang
  829. 15575
  830. Node: Display Code
  831. 17531
  832. Node: cccascii
  833. 18896
  834. Node: cdcascii
  835. 19180
  836. Node: cdcnos
  837. 19529
  838. Node: ebcdic
  839. 21422
  840. Node: flat
  841. 21679
  842. Node: ibmpc
  843. 22291
  844. Node: iconqnx
  845. 22544
  846. Node: latex
  847. 22865
  848. Node: latin1
  849. 23083
  850. Node: Commented Latin-1
  851. 23457
  852. Node: Octal Latin-1
  853. 27856
  854. Node: Decimal Latin-1
  855. 29048
  856. Node: Hexadecimal Latin-1
  857. 30246
  858. Node: texte
  859. 31334
  860. Node: Easy French
  861. 31640
  862. Node: French quotes
  863. 32607
  864. Node: Latin ligatures
  865. 32876
  866. Node: Diacritics
  867. 33198
  868. Node: Ending diaeresis
  869. 35198
  870. Node: Easy French History
  871. 36949
  872. Node: Internals
  873. 37782
  874. Node: Main flow
  875. 38219
  876. Node: Piping
  877. 39174
  878. Node: Limitations
  879. 39562
  880. Node: New charsets
  881. 39971
  882. Node: Future
  883. 42609
  884. End Tag Table
  885.